package com.example.vue.account.service;

import com.example.vue.account.vo.AccountLoginFormVo;
import com.example.vue.account.vo.AccountRegFormVo;
import com.example.vue.comm.domain.ResultData;

import javax.servlet.http.HttpServletResponse;
import java.security.NoSuchAlgorithmException;
import java.util.Map;

/**
 * @author zhouxl
 * @DATE 2020/11/27
 * @descriptoin
 */
public interface AccountService {
    /**
     * 账户注册
     *
     * @param vo
     * @return
     */
    ResultData register(AccountRegFormVo vo) throws NoSuchAlgorithmException;

    /**
     * 账户登录处理
     *
     * @param vo
     * @return
     */
    ResultData login(AccountLoginFormVo vo, HttpServletResponse response) throws NoSuchAlgorithmException;

    /**
     * 查询用户列表信息
     *
     * @param params
     * @return
     */
    Object queryAccountList(Map<String, Object> params);

    /**
     * 保存用户信息
     *
     * @param params
     * @return
     */
    Object saveAccount(Map<String, Object> params);

    /**
     * 删除用户信息
     *
     * @param params
     * @return
     */
    Object deleteAccount(Map<String, Object> params);

    /**
     * 重置用户密码
     *
     * @param params
     * @return
     */
    Object resetPassAccount(Map<String, Object> params) throws Exception;

    /**
     * 查询用户权限信息
     *
     * @param params
     * @return
     */
    Object queryAccountMenu(Map<String, Object> params);

    /**
     * 保存用户权限信息
     *
     * @param params
     * @return
     */
    Object saveAccountMenu(Map<String, Object> params);

    /**
     * 改变用户角色信息
     *
     * @param params
     * @return
     */
    Object changeAccountGender(Map<String, Object> params);

    /**
     * 用户状态修改
     *
     * @param params
     * @return
     */
    Object changeAccountStatus(Map<String, Object> params);

    /**
     * 查询页面权限信息
     *
     * @param params
     * @return
     */
    Object queryAccountLeftNavMenu(Map<String, Object> params);

    /**
     * 退出接口
     *
     * @param params
     * @return
     */
    Object loginout(Map<String, Object> params);
}
